<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    let array=[10,20,50,100,200,240];
    //filter 过滤大于100的数
    /*let array1=array.filter(function (n) {
        return n>100
    });
    document.body.append(array1)*/

    //map 对满足限定条件的值，生成一个新的对象
    /*let array2=array.map(function (n) {
        return n*2;
    })
    document.body.append(array2);*/

    //reduce 归并函数，对数组中的值进行汇总
    /*
    reduce()方法从左到右遍历数组；而reduceRight()从右到左遍历数组；
    第一个参数：在每一项调用的函数（该函数包含四个参数）
        函数第一个参数：前一项的值
        函数第二个参数：当前项的值
        函数第三个参数：项的索引
        函数第四个参数：数组对象
    第二个参数：作为归并的基础值（可选）

    */
    let def=0;
    let array3=array.reduce(function (prev,current) {
        console.log(prev);
        console.log(current);
        console.log('end');
        return 1;
    },def);
    document.body.append(array3);
    /**
     输出：
     第一次：0 10 end
     第二次：1 20 end
     第三次：1 50 end
     第四次：1 100 end
     第五次：1 200 end
     第六次：1 240 end
     可以看出reduce函数的规则是：
     prev指前一次function返回的结果，第一次默认为作为归并的基础值def
     current是当前项的值
     */
</script>

</body>
</html>